package usj.pop3.server.comandos;

import java.util.List;

import usj.pop3.client.ScanFiles;
import usj.pop3.server.ComandoPop3;
import usj.pop3.server.Mensaje;
import usj.pop3.server.SesionCliente;

public class CmdRetr implements ComandoPop3 {
	public static String MSG_OK = "+OK\r\n";
	public static String MSG_ERR = "-ERR message not found.";

    public String ejecutar(SesionCliente sesionCliente, String[] argumentos) {
    	String res = MSG_ERR;
    	if (sesionCliente.getEstado() == SesionCliente.Estados.AUTENTIFICADO) {
			if (argumentos[1] != null && argumentos[1].length() > 0) {
	    		String strNumerillo = argumentos[1];//.substring(argumentos[0].indexOf(" ") + 1, argumentos[0].length())
	    		try {
					int numeroDeMensaje = Integer.parseInt(strNumerillo);
		    		ScanFiles scanFiles = new ScanFiles();
		    		List<Mensaje> mensajicos = scanFiles.listaMensajes(sesionCliente);
					if ((numeroDeMensaje > 0) && (numeroDeMensaje <= mensajicos.size())) {
			    		res = MSG_OK + mensajicos.get(numeroDeMensaje-1).getRaw() + "\r\n.";
			    	}
	    		} catch (NumberFormatException e) {
					res = MSG_ERR;
				}
			}
    	}
	   	return res;
    }
    public ComandoPop3 factory() {
		return new CmdRetr();
    }
}